home *** CD-ROM | disk | FTP | other *** search
/ Web Art / Web Art.iso / macwebcd / macweb.dxr / Internal_34_QuickTime Control Button.ls < prev    next >
Encoding:
Text File  |  1999-07-16  |  4.0 KB  |  142 lines

  1. property pSprite, pActive, pAction, pVideoSprite
  2.  
  3. on getBehaviorDescription
  4.   vDesc = "QT CONTROL BUTTON" & RETURN & RETURN
  5.   vDesc = vDesc & "Use this behavior to make almost any sprite into a control"
  6.   vDesc = vDesc && "button for Quicktime video sprites. Standard controls"
  7.   vDesc = vDesc && "available through this behavior are Play, Stop/Pause,"
  8.   vDesc = vDesc && "Rewind to beginning, Jump to End, Fast Forward (2x)"
  9.   vDesc = vDesc && "and Fast backward (2x). Drag behavior onto a sprite,"
  10.   vDesc = vDesc && "select the Quicktime sprite to control, and which action"
  11.   vDesc = vDesc && "the button will perform." & RETURN & RETURN
  12.   vDesc = vDesc & "PARAMETERS:" & RETURN
  13.   vDesc = vDesc & " - which Quicktime video sprite to control" & RETURN
  14.   vDesc = vDesc & " - Button action (rewind, stop, play,"
  15.   vDesc = vDesc && "end, backward, forward)" & RETURN & RETURN
  16.   vDesc = vDesc & "PERMITTED TYPES:" & RETURN
  17.   vDesc = vDesc & " - Quicktime video to control" & RETURN
  18.   vDesc = vDesc & " - any graphics sprite(s) for the controls" & RETURN
  19.   return vDesc
  20. end
  21.  
  22. on getBehaviorTooltip
  23.   vTip = "Create custom Quicktime sprite video control" & RETURN
  24.   vTip = vTip & "buttons.  First place the QuickTime sprite on stage," & RETURN
  25.   vTip = vTip & "then attach the behavior to the sprites that will " & RETURN
  26.   vTip = vTip & "serve as the controls."
  27.   return vTip
  28. end
  29.  
  30. on beginSprite me
  31.   mInitialize(me)
  32. end
  33.  
  34. on mouseDown me
  35.   mVideoButton(me)
  36. end
  37.  
  38. on mouseUp me
  39.   case pAction of
  40.     #backward, #forward:
  41.       mVideoButton(me)
  42.   end case
  43. end
  44.  
  45. on mouseLeave me
  46.   case pAction of
  47.     #backward, #forward:
  48.       mVideoButton(me)
  49.   end case
  50. end
  51.  
  52. on mInitialize me
  53.   pSprite = sprite(me.spriteNum)
  54.   pActive = 0
  55. end
  56.  
  57. on mVideoButton me
  58.   if mVerifyVideo(pVideoSprite) then
  59.     case pAction of
  60.       #play:
  61.         sprite(pVideoSprite).movieRate = 1
  62.       #stop:
  63.         sprite(pVideoSprite).movieRate = 0
  64.       #rewind:
  65.         sprite(pVideoSprite).movieRate = 0
  66.         sprite(pVideoSprite).movieTime = 0
  67.       #end:
  68.         sprite(pVideoSprite).movieRate = 0
  69.         sprite(pVideoSprite).movieTime = sprite(pVideoSprite).member.duration
  70.       #backward:
  71.         if the mouseDown and rollOver(me.spriteNum) then
  72.           pActive = 1
  73.           sprite(pVideoSprite).movieRate = -2
  74.         else
  75.           if pActive then
  76.             sprite(pVideoSprite).movieRate = 0
  77.           end if
  78.           pActive = 0
  79.         end if
  80.       #forward:
  81.         if the mouseDown and rollOver(me.spriteNum) then
  82.           pActive = 1
  83.           sprite(pVideoSprite).movieRate = 2
  84.         else
  85.           if pActive then
  86.             sprite(pVideoSprite).movieRate = 0
  87.           end if
  88.           pActive = 0
  89.         end if
  90.     end case
  91.   end if
  92. end
  93.  
  94. on mVerifyVideo vSpriteNum
  95.   return sprite(vSpriteNum).member.type = #quickTimeMedia
  96. end
  97.  
  98. on mVideoSpriteList
  99.   vVideoList = []
  100.   repeat with i = 1 to the lastChannel
  101.     if mVerifyVideo(i) then
  102.       add(vVideoList, i)
  103.     end if
  104.   end repeat
  105.   return vVideoList
  106. end
  107.  
  108. on mErrorAlert me, vError, vData
  109.   vBehaviorname = string(me)
  110.   delete word 1 of vBehaviorname
  111.   delete char -30001 of vBehaviorname
  112.   delete char -30001 of vBehaviorname
  113.   case vData.ilk of
  114.     #void:
  115.       vData = "<void>"
  116.     #symbol:
  117.       vData = "#" & vData
  118.   end case
  119.   case vError of
  120.     #getPDLError:
  121.       beep()
  122.       return [#getPDLError: [#comment: "CANCEL: Sprite MUST be one of the following member types:" & RETURN & vData, #format: #symbol, #range: [#Cancel], #default: #Cancel]]
  123.     #noVideo:
  124.       alert("No video sprites are currently on the screen")
  125.   end case
  126. end
  127.  
  128. on getPropertyDescriptionList me
  129.   if not (the currentSpriteNum) then
  130.     exit
  131.   end if
  132.   vVideos = mVideoSpriteList()
  133.   if not vVideos.count then
  134.     return mErrorAlert(me, #noVideo)
  135.   else
  136.     vPDList = [:]
  137.     setaProp(vPDList, #pVideoSprite, [#comment: "Video sprite channel", #format: #string, #default: vVideos[1], #range: vVideos])
  138.     setaProp(vPDList, #pAction, [#comment: "Video button action", #format: #symbol, #default: #play, #range: [#rewind, #stop, #play, #end, #backward, #forward]])
  139.     return vPDList
  140.   end if
  141. end
  142.